30 HOME : VTAB 10: FOR N = 1 TO 39: PRINT "*";: NEXT N: VTAB 12: HTAB 5: PRINT "FILE CABINET FILE INITIALIZER": PRINT : HTAB 15: PRINT "WRITTEN BY": PRINT : HTAB 14: PRINT "MIKE KRAMER"
35 VTAB 18: PRINT " PRODOS VERSION BY MICHAEL MOORE": VTAB 19: FOR N = 1 TO 39: PRINT "*";: NEXT N
40 VTAB 20: HTAB 13: INPUT "INSTRUCTIONS (Y/N) ? ";YN$:YN$ = LEFT$(YN$,1): IF YN$ < >"Y" AND YN$ < >"N" THEN GOTO 40
50 IF YN$ = "Y" GOTO 770
60 GOSUB 680: REM POKE IN ONERR ROUTINE
70 HOME : CLEAR
80 VTAB 12: PRINT "INSERT FILE CABINET DISK - PRESS A KEY";: GET A$: PRINT
90 D$ = CHR$(4)
100 PRINT D$;"PREFIX"
110 INPUT PX$: REM OBTAIN CURRENT DISK PATH
120 DIM HD$(20),BN$(40)
130 ONERR GOTO 630
135 PRINT D$;"VERIFY";PX$ +"BASENAMES"
140 PRINT D$;"OPEN";PX$ +"BASENAMES"
145 PRINT D$;"READ";PX$ +"BASENAMES"
150 INPUT NB$:NB = VAL(NB$)
160 FOR N = 1 TO NB: INPUT BN$(N): NEXT N
170 PRINT D$;"CLOSE"
180 ONERR GOTO 650
182 VTAB 14: CALL -958: PRINT
185 PRINT "TO EXIT THE PROGRAM, PRESS 'RETURN'"
187 PRINT "INSTEAD OF ENTERING A DATA BASE NAME."
190 PRINT : INPUT "NAME OF NEW DATA BASE? ";DB$: IF LEN(DB$) = 0 THEN HOME : GOTO 600
200 IF ASC( LEFT$(DB$,1)) <65 OR ASC( LEFT$(DB$,1)) >91 THEN PRINT : PRINT "NAME MUST START WITH A LETTER.": GOSUB 910: GOTO 182
210 IF LEN(DB$) >19 THEN PRINT : PRINT "NAME MUST HAVE LESS THAN 20 CHARACTERS": GOSUB 910: GOTO 182
212 FOR L = 1 TO LEN(DB$)
214 IF ASC( MID$ (DB$,L,1)) <46 OR ASC( MID$ (DB$,L,1)) >90 OR ASC( MID$ (DB$,L,1)) = 47 THEN FLAG = 1:L = LEN(DB$): GOTO 217
215 IF ASC( MID$ (DB$,L,1)) <65 AND ASC( MID$ (DB$,L,1)) >57 THEN FLAG = 1:L = LEN(DB$)
217 NEXT L
219 IF FLAG THEN PRINT "ONLY LETTERS, NUMERALS, OR PERIODS ARE PERMITTED WITHIN A DATA BASE NAME.":FLAG = 0: PRINT "PRESS ANY KEY TO CONTINUE.";: GET K$: GOTO 182
220 FOR J = 1 TO NB
230 IF DB$ = BN$(J) GOTO 260
240 NEXT J
250 NB = NB +1:NB$ = STR$(NB):BN$(NB) = DB$: GOTO 300
790 PRINT "THIS PROGRAM SETS UP FILE CABINET FILES WITH A SPECIFIED NUMBER OF RECORDS."
800 PRINT
810 PRINT "YOU WILL BE ASKED FOR THE NEW DATA BASE NAME, THE NUMBER OF RECORDS, AND THE HEADERS TO BE USED. IF THE DATA BASE NAMED IS IN THE BASENAMEFILE, YOU WILL BE GIVEN A CHANCE TO ENTER ANOTHER NAME IF DESIRED."
820 PRINT : PRINT "WHEN THE DESIRED HEADERS HAVE BEEN ENTERED, PRESS <RETURN> TO INDICATE THERE ARE NO MORE."
830 VTAB 22: PRINT "PRESS <RETURN> TO CONTINUE,<ESC> TO EXIT";: GET A$: PRINT ;